   .org 0x0
   .set noat
   .set noreorder
   .set nomacro
   .global _start
_start:
    ori $sp,$0,65532
    ori $a0,$0,5
    jal fib
    nop
    j End
    nop
fib:
    addi $sp, $sp,-12
    sw $ra, 8($sp)
    sw $a0, 4($sp)
    sw $s0, 0($sp)
    ori $1,$0,0
    beq $a0, $1, L0
    nop
    ori $1,$0,1
    beq $a0, $1, L1
    nop
    addi $a0, -1
    jal fib
    nop
    add $s0, $zero, $v0
    lw $a0, 4($sp)
    nop
    addi $a0, -2
    jal fib
    nop
    add $v0, $v0, $s0
ret:
    lw $ra, 8($sp)
    lw $s0, 0($sp)
    nop
    addi $sp, $sp, 12
    jr $ra
    nop
L0:
    addi $v0, $zero, 0
    j ret
    nop
L1:
    addi $v0, $zero, 1
    j ret
    nop
End:
    nop
